1
쌍을 넘어서: 다양한 타입의 그룹화를 위한 튜플
AI037Lesson 19
00:00

대규모 C++ 시스템의 아키텍처에서, 임시 데이터 그룹마다 공식적인 struct struct를 정의하는 것은 종종 과도하다. 이때 std::tuple이질적 컨테이너로 일반화하여 std::pair 다양한 타입의 임의의 수를 저장할 수 있다.

1. 생성 및 제약 조건

표준 컨테이너와 달리, tuple 생성자는 명시적입니다. 리스트를 사용한 복사 초기화는 사용할 수 없습니다. 직접 초기화 또는 std::make_tuple를 사용해야 합니다.

tuple<int, double> t1{1, 2.5}; // OK
tuple<int, double> t2 = {1, 2.5}; // 오류!

2. 접근 및 내부 정보 조회

멤버는 get<i>(tuple_name)를 통해 접근하며, i 는 컴파일 시간에 알려진 상수 표현식이어야 합니다. 메타데이터는 tuple_sizetuple_element 를 이용해 decltype를 사용해야 합니다.

std::tuple의 메모리 레이아웃문자열get<0>정수get<1>실수get<2>

3. 관계 논리

튜플은 사전순으로비교됩니다. 두 튜플의 멤버 수가 같고 각각의 타입이 관계 연산자를 지원해야만 비교가 유효합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>